package src;

import src.ISell;

/**
 * 代理主题角色：也叫做委托类或代理类。它负责对真实角色的应用，
 * 把所有抽象主题类定义的方法限制委托给真实主题角色实现，并且在具体主题角色处理完毕前后做预处理和善后处理工作。
 */
class TaoBaoProxy implements ISell {
    private final YonexImplSell yonex;
    private final String COMMON_PEDDLE = "我是淘宝的静态代理，";
    public TaoBaoProxy(){
        yonex = new YonexImplSell();
    }
    @Override
    public String sellGloves() {
        return COMMON_PEDDLE + yonex.sellGloves();
    }
    @Override
    public String sellSocks() {
        return COMMON_PEDDLE + yonex.sellSocks();
    }
    @Override
    public String sellShoes() {
        return COMMON_PEDDLE + yonex.sellShoes();
    }
}

/**
 * 程序入口，一般为程序的调用者使用代理访问功能
 */
public class StaticProxy {
    public static void main(String[] args) {
        TaoBaoProxy taoBao =new TaoBaoProxy();
        System.out.println(taoBao.sellGloves());
    }
}
